// \u4e00-\u9fa5] 中文验证规则
import behavior from '../../../utils/behaviors' // 1. 导入封装好的behavior组件
Page({
  behaviors: [behavior], // 混入到页面中
  onLoad() {
    if (this.options.id) {
      wx.setNavigationBarTitle({ title: '修改房屋信息' })
      this.getDetailList()
      return
    }
    wx.setNavigationBarTitle({ title: '添加房屋信息' })
    this.eventBus = this.getOpenerEventChannel()
    this.eventBus.on('to-form', (data) => {
      // room页面传来的数据
      this.setData({
        point: data.zone,
        building: data.building,
        room: data.roomNum
      })
    })
  },
  async getDetailList() {
    const DetailList = await wx.http({
      url: `/room/${this.options.id}`
    })
    this.setData(DetailList)
  },
  data: {
    point: '', // 小区信息
    building: '', // 小区楼栋信息
    room: '', // 小区房间信息
    name: '', // 业主姓名
    gender: 1, // 业主性别0女1男
    mobile: '', // 业主电话
    idcardFrontUrl: '', // 身份证正面
    idcardBackUrl: '', // 身份证背面
    // idcardFrontUrl: '/static/images/avatar_1.jpg',
    // idcardBackUrl: '/static/images/avatar_2.jpg',
  },
  rules: {
    name: [
      { required: true, message: '姓名不能为空' },
      { pattern: /^[\u4e00-\u9fa5]{2,5}$/, message: '输入姓名需为2-5个字符' },
    ],
    mobile: [
      { required: true, message: '手机号必传' },
      { pattern: /^1[3-9]\d{9}$/, message: '请输入正确的手机号' },
    ],
    idcardFrontUrl: [{ required: true, message: '请上传身份证正面照片' }],
    idcardBackUrl: [{ required: true, message: '请上传身份证反面照片' }]
  },
  // 上传身份证正反面
  async chooseImage(ev) {
    //参考文档： https://developers.weixin.qq.com/miniprogram/dev/api/media/video/wx.chooseMedia.html
    const ret = await wx.chooseMedia({
      count: 1, // 只能上传1张
      mediaType: ['image'], // 只能拍摄图片或从相册选择图片
      sourceType: ['album', 'camera'],
      sizeType: ['compressed'] // 压缩图片
    })
    wx.uploadFile({
      url: wx.http.baseURL + '/upload',
      filePath: ret.tempFiles[0].tempFilePath,
      name: 'file', // 后台定义的存储文件的属性名，查看接口文档/和后台沟通确定
      header: {
        Authorization: 'Bearer ' + getApp().token
      },
      success: (res) => {
        this.setData({
          [ev.mark.type]: JSON.parse(res.data).data.url
        })

      }
    })

  },

  // 提交审核逻辑
  async goList() {
    // 1. 校验
    const ret = this.validate()
    if (!ret) return
    // 2. 调接口
    const { __webviewId__, status, ...data } = this.data
    await wx.http({
      url: '/room',
      method: 'POST',
      data
    })
    // 3. 成功提示
    await wx.showToast({
      title: this.options.id ? '修改房屋成功' : '新增房屋成功',
      duration: 3000
    })
    setTimeout(() => {
      // 4. 跳转页面
      wx.reLaunch({
        url: '/house_pkg/pages/list/index',
      })
    }, 3000)
  },
  removePicture(ev) {
    // 移除图片的类型（身份证正面或反面）
    const type = ev.mark?.type
    this.setData({ [type]: '' })
  },
})
